1. Field of the Invention
The present invention relates to providing temporary power to a storage switch or storage device and backing up operational data during failure of a primary power source.
2. Description of the Related Art
Storage Area Network (SAN) enables one or more storage devices remote from a host device to appear as if the storage devices are locally attached to the host device. Conventionally, the SAN was implemented using protocols such as iSCSI or Fiber Channel over Ethernet (FCoE) between host devices and the storage devices. Specifically, commands under Small Computer System Interface (SCSI) were reformatted into iSCSI or FCoE for transmission via Transmission Control Protocol/Internet Protocol (TCP/IP). However, the SCSI command is not designed specifically for storage devices. Hence, the SCSI commands tend to have a large amount of overhead because of the complexity of the SCSI protocol. Reformatting the SCSI commands for transmission using TCP/IP protocol adds additional overhead, rendering operations associated with the SAN inefficient.
AT Attachment over Ethernet (AoE) was developed to overcome such deficiency. The AoE is a non-connection based protocol that allows implementation of Storage Area Network (SAN) using storage devices compliant with Serial Advanced Technology Attachment (SATA) specification. SATA compliant storage devices are generally cheaper than SCSI compliant storage devices. By using SATA compliant devices, the AoE protocol enables cheaper implementation of the SAN compared to using the combination of iSCSI or FCoE and SCSI compliant storage devices. Moreover, the AoE protocol removes overhead associated with connection-based protocol such as TCP/IP, which renders data transmission more efficient.
A host device requests writing or reading of data using logical addresses. However, the storage devices are accessed using physical addresses. Hence, the SAN generally uses a storage switch that provides translation between logical addresses and physical addresses of data. The storage switch provides dynamic address translation of such logical addresses to physical addresses of the storage devices or vice versa to enable the host device to access the data. For this purpose, the storage switch stores a dynamic address translation table mapping the relationships between the logical addresses and physical addresses. The storage switch can also include other metadata such as information indicating the part of the storage device available to store new data.
If the dynamic address translation table or other metadata becomes unavailable, the host device cannot write or read data in the SAN because the physical addresses of the data cannot be determined from the logical addresses (as identified by the host device) and the locations on the storage devices available for write operations cannot be verified. Hence, a backup and restoration mechanism should be provided for the dynamic address translation table and other metadata in the storage switch so a backup storage switch can resume operation in case a primary storage switch becomes inoperable.
Also, the storage devices in the SAN may employ a write cache memory for temporarily storing data before the data are written to non-volatile memory devices (e.g., hard disks). The cache memory advantageously buffers incoming data and allows the storage devices to receive the data at a higher speed than the speed at which the data can be written to the non-volatile memory devices.
The write cache memory in the storage devices is generally implemented as a high-speed volatile memory. Hence, if power to the write cache memory fails before the cached data are written to the non-volatile memory devices, the cached data may be lost. The lost data in the write cache memory may cause discrepancy in the data actually stored in the storage devices and the data that are recorded in the host device as being stored in the storage devices. Such discrepancy may cause error in operations at the host device. Hence, a backup and restoration mechanism should be provided for the write cache memory in case the storage devices experience power failure.